#ifndef _BRICK_H
#define _BRICK_H

enum brick_index_t
{
  STRIP = 0,
  BLOCK,
  NORMAL_L,
  LEFT_L,
  NORMAL_Z,
  LEFT_Z,
  DOUBLE_L,
  SHAPE_MAX,
};

#define BRICK_RANGE 4

typedef char brick_shape[BRICK_RANGE][BRICK_RANGE];
struct brick_info
{
  int               tile_index;
  brick_shape       shape;
};

struct brick_info*  create_brick(int tile, int shape);
void                change_shape(struct brick_info* brick, int tile, int shape);
void                change_direction(struct brick_info* brick);
void                move_brick_left(struct brick_info* brick);
void                move_brick_right(struct brick_info* brick);
void                destroy_brick(struct brick_info* brick);

#endif  // _BRICK_H
